#include "singledb.h"

Singledb* Singledb::db=nullptr;

    Singledb* Singledb::getInstance()
    {
        //构造
          if(db==nullptr)
          {
              qDebug()<<"正在new";
              Singledb::db=new Singledb();
          }
          //qDebug()<<"返回db";
          return db;
    }

    void Singledb::releaseInstance()
    {
        //析构
        if(Singledb::db!=nullptr)
        {
            delete Singledb::db;
            Singledb::db=nullptr;
        }
    }

    void Singledb::openDB(char* str)
    {
        //打开数据库
        int res=0;
        res=sqlite3_open(str,&psqlite);

        if(res==SQLITE_OK)
        {
            qDebug()<<"open success";
        }
        else
        {
            qDebug()<<"错误码："<<sqlite3_errcode(psqlite);//找出错误码
            qDebug()<<"错误信息："<<sqlite3_errmsg(psqlite);//找出错误信息
        }
    }

    void Singledb::closeDB()
    {
        //关闭数据库
        if(this->psqlite!=nullptr)
        {
            int res=sqlite3_close(this->psqlite);
            if(res!=SQLITE_OK)
            {
                qDebug()<<"错误码："<<sqlite3_errcode(psqlite);//找出错误码
                qDebug()<<"错误信息："<<sqlite3_errmsg(psqlite);//找出错误信息
            }
        }

    }

    sqlite3 *Singledb::getPsqlite() const
    {
        return psqlite;
    }

    Singledb::Singledb()
    {
        this->openDB("../database/itemstest.db");
    }

    Singledb::~Singledb()
    {
        this->closeDB();
    }
